package com.roy;

import org.zywx.wbpalmstar.engine.EBrowserView;
import org.zywx.wbpalmstar.engine.universalex.EUExBase;
import org.zywx.wbpalmstar.engine.universalex.EUExCallback;
import org.zywx.wbpalmstar.engine.universalex.EUExUtil;

import com.tencent.android.tpush.XGIOperateCallback;
import com.tencent.android.tpush.XGPushConfig;
import com.tencent.android.tpush.XGPushManager;
import com.tencent.android.tpush.common.Constants;

import android.app.Activity;
import android.app.ActivityGroup;
import android.app.LocalActivityManager;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Vibrator;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class UexXG extends EUExBase {

	static final String func_activity_callback = "uexFtpClient.cbStartActivityForResult";
	static final String func_dialog_callback = "uexFtpClient.cbTest_showInputDialog";
	static final String func_on_callback = "javascript:uexFtpClient.onCallBack";

	public static String softToken;
	public static Context context;
	public static UexXG that;

	public UexXG(Context paramContext, EBrowserView view) {
		super(paramContext, view);
		if (context == null) {
			context = paramContext;
			softToken = XGPushConfig.getToken(context);
			that = this;
		}
	}

	/**
	 * 初始化信鸽推送的数据。
	 */
	public void InitXgPush(String[] parm) {
		XGPushConfig.enableDebug(context, false);
		// 开启logcat输出，方便debug，发布时请关闭
		// 如果需要知道注册是否成功，请使用registerPush(getApplicationContext(),
		// XGIOperateCallback)带callback版本
		// 如果需要绑定账号，请使用registerPush(getApplicationContext(),"account")版本
		// 具体可参考详细的开发指南
		// 传递的参数为ApplicationContext
		// XGPushManager.registerPush(this.context);
		XGPushConfig.setAccessId(context, Long.parseLong(parm[0]));
		XGPushConfig.setAccessKey(context, parm[1]);
		jsCallback("uexXG.cbXgPush", 1, EUExCallback.F_C_TEXT, XGPushConfig.getToken(context));

		Log.w(Constants.LogTag, "***************注册接口 *****************************************************");
		XGPushManager.registerPush(context, new XGIOperateCallback() {
			@Override
			// 成功了
			public void onSuccess(Object data, int flag) {
				softToken = data.toString();
				Log.w(Constants.LogTag,"***************onSuccess ********************************************");
				Log.d("TPush", XGPushManager.isEnableService(mContext) + "注册成功，设备token为：" + data);
			}

			@Override
			// 出错了
			public void onFail(Object data, int errCode, String msg) {
				Log.w(Constants.LogTag, "***************onFail **********************************************");
				Log.d("TPush", "注册失败，错误码：" + errCode + ",错误信息：" + msg);
			}
		});
	}

	/**
	 * 初始化信鸽推送的数据。
	 */
	public void InitXgUserPush(String[] parm) {
		XGPushConfig.enableDebug(context, false);
		// 开启logcat输出，方便debug，发布时请关闭
		// 如果需要知道注册是否成功，请使用registerPush(getApplicationContext(),
		// XGIOperateCallback)带callback版本
		// 如果需要绑定账号，请使用registerPush(getApplicationContext(),"account")版本
		// 具体可参考详细的开发指南
		// 传递的参数为ApplicationContext
		// XGPushManager.registerPush(this.context);
		XGPushConfig.setAccessId(context, Long.parseLong(parm[0]));
		XGPushConfig.setAccessKey(context, parm[1]);
		jsCallback("uexXG.cbXgPush", 1, EUExCallback.F_C_TEXT, XGPushConfig.getToken(context));

		Log.w(Constants.LogTag, "***************注册接口 *****************************************************");
		XGPushManager.registerPush(context,parm[2], new XGIOperateCallback() {
			@Override
			// 成功了
			public void onSuccess(Object data, int flag) {
				softToken = data.toString();
				Log.w(Constants.LogTag,"***************onSuccess ********************************************");
				Log.d("TPush", XGPushManager.isEnableService(mContext) + "注册成功，设备token为：" + data);
			}

			@Override
			// 出错了
			public void onFail(Object data, int errCode, String msg) {
				Log.w(Constants.LogTag, "***************onFail **********************************************");
				Log.d("TPush", "注册失败，错误码：" + errCode + ",错误信息：" + msg);
			}
		});
	}


	/**
	 * 设置设备的标签。可以按标签来推送~
	 */
	public void SetXgTag(String[] parm) {
		XGPushManager.setTag(context,parm[0]);
		jsCallback("uexXG.cbXgTag", 1, EUExCallback.F_C_TEXT, XGPushConfig.getToken(context));

		Log.w(Constants.LogTag, "***************设置标签：" + parm[0] + "*****************************************************");
	}

	/**
	 * 预置标签，安装渠道。
	 */
	public void SetInstallChannel(String[] parm) {
		XGPushConfig.setInstallChannel(context,parm[0]);
		jsCallback("uexXG.cbXgTag", 1, EUExCallback.F_C_TEXT, XGPushConfig.getToken(context));

		Log.w(Constants.LogTag, "***************预置标签，安装渠道：" + parm[0] + "*****************************************************");
	}

	
	/**
	 * 设置设备的标签。可以按标签来推送~
	 */
	public void DelXgTag(String[] parm) {
		XGPushManager.deleteTag (context,parm[0]);
		jsCallback("uexXG.cbXgTag", 1, EUExCallback.F_C_TEXT, XGPushConfig.getToken(context));

		Log.w(Constants.LogTag, "***************删除标签：" + parm[0] + "*****************************************************");
	}
	
	
	
	
	@Override
	protected boolean clean() {
		// TODO Auto-generated method stub
		return false;
	}
}
